package com.shopping.dao;

import com.shopping.model.Car;
import com.shopping.model.view.CarView;
import java.util.List;

public interface CarDao {
    /**
     * 添加购物车
     * @param car 购物车对象
     * @return
     * */
    public void addCar(Car car);

    /**
     * 检测当前购物车中是否包含指定的花卉
     * @param  flowerId  花卉编号
     * @param  userId  用户编号
     * @return  true表示不包含，false表示包含
     * */
    public boolean isContains(int flowerId, int userId);


    /**
     * 更新购物车中商品数量
     * @param  flowerId  花卉编号
     * @param  userId  用户编号
     * @param  count 更新数量
     * @return */
    public void updateCount(int flowerId, int userId, int count);
    /**
     * 更新购物车中的数量
     * @param  carId
     * @param  count
     * @return
     */
    public void updateCount(int carId, int count);

    /**
     * 根据购物车编号删除购物车信息
     */
    public void deleteCarById(int carId);

    /**
     * 根据用户编号删除该用户所有的购物车信息
     */
    public void clearCar(int userId);

    /**
     * 根据用户编号查询该用户的购物车信息
     * @param  userId
     * @return
     */
    public List<CarView> queryCar(int userId);

    /**
     *根据用户编号统计该用户在购物车中的商品数量
     * @param userId
     * @return
     */
    public int countCar(int userId);

    /**
     * 根据用户ID和花卉ID查询该商品在购物车中的数量
     * @param user_id 用户ID
     * @param flowerId 花卉ID
     * @return
     */
    public Integer getCountByUserIdAndFlowerId(Integer user_id, int flowerId);
}
